#pragma once

template<typename T1, typename T2>
class AbstractSymbolTable
{
public:
	AbstractSymbolTable();
	~AbstractSymbolTable();

	virtual void put(const T1&obj, const T2 & value) = 0;

	virtual T2 get(const T1&obj) = 0;

};


template<typename T1, typename T2>
AbstractSymbolTable<T1, T2>::AbstractSymbolTable()
{
}

template<typename T1, typename T2>
AbstractSymbolTable<T1, T2>::~AbstractSymbolTable()
{
}

